package com.fingard.dsp.bank.reqrespobj.foreigncurrsingle.detail;

import com.fingard.dsp.bank.reqrespobj.single.detail.ReqPayRecDetail;
import com.fingard.xml.XElement;

/**
 * Created by Lewis on 2017/9/23.
 * 跨境外币请求信息实体类
 */
public class ReqForeignCurrPayRecDetail extends ReqPayRecDetail {
    //款项性质：0：经常项目贸易，1：经常项目非贸易，2：资本项目，3：代理进口
    //中信该字段传：1：贸易；2：服务贸易；3：资本；4：同名划转
    public String fundsProp;
    //付方银行区域代码
    public String payAreaCode;
    //收方银行区域代码
    public String recAreaCode;
    //付方组织机构代码
    public String payOrgCode;
    //付方地址
    public String payAddr;
    public String recAddr;
    //付方组织机构类型 1-中资机构,2-外资机构
    public String payOrgType;

    //付方国别
    public String payCtryCode;
    public String payCounyeryCode;
    //收方国别
    public String recCtryCode;
    //收方银行国别
    public String recCountryCode;
    //现汇账户
    public String payCashAct;
    //现汇金额
    public String payCashAmount;
    public String payPurchaseAct;
    public String payPurchaseAmt;
    public String payOtherAct;
    public String payOtherAmount;
    public String payCNAPSCode;
    //付方swiftcode
    public String paySWIFTCODE;
    //收方类型  CNI：境内非居民个人，CNO：境内非居民机构，DEI：居民个人，DEO：居民机构，FIN：境外个人，FOR：境外机构
    public String recType;
    //收方人行行号
    public String recCNAPSCode;
    //收方人行行名
    public String recCNAPSName;
    public String recSWIFTCODE;
    public String recAgentBnkName;
    public String recAgentBnkSWIFT;
    public String recAgentBnkAct;
    public String recAgentBnkAddr;
    public String recAgentBnkCtryCode;
    public String costMode;//国内外费用承担：OUR：汇款人，BEN：收款人，SHA：共同
    public String payMethod;//付款方式：A：预付货款，P：货到付款，R：退款，O：其他
    public String isBondedGood;//保税货物项下付款：0：否，1：是
    public String payProperty;//付汇性质：X：保税区，E：出口加工区，D：钻石交易所，A：其他特殊经济区域，M：深加工结转，O：其他
    public String transCode1;
    public String currency1;
    public String postScript1;
    public String amout1;
    public String transCode2;
    public String currency2;
    public String postScript2;
    public String amout2;
    public String feeAct;//手续费账号
    public String contractNo;
    public String invoiceNo;
    public String isDomestic;//-境内标志 1：境内 0：境外
    public String contactPerson;//联系人
    public String contactNum;//联系电话
    public String businessNum;//外汇局批件号/备案表号/业务编号
    public String ispaymentforimportitem;//进口核销项下付款
    public String declareFlag;//申报标志, 0不申报,1国际收支申报,2境内核销
    public String recCheque; //支票收方 （1：收款人 2：付款人）
    public String chequeAddr;//支票邮寄地址
    public String recBnkAddr;//收方银行地址
    public String recBnkName;//收方银行名称
    public String exContract;//汇率合约号
    public String recRTGSCode;//收方银行RTGS代码
    public String recRTGSName;//收方银行RTGS名称
    public String chargeCur;//手续费账号币种
    public String payActCur;//付款账号币种

    public String payIBAN;//付方IBAN号
    public String recIBAN;//收方IBAN号

    public ReqForeignCurrPayRecDetail(XElement p_xelement, String p_transType, String p_bankCode) throws Exception {
        super(p_xelement, p_transType, p_bankCode);
        askNumber = p_xelement.getSingleText("ReqSeqID");
        abstractATS = p_xelement.getSingleText("PostScript");
        payAreaCode = p_xelement.getSingleTextNotNull("PayAreaCode");
        recAreaCode = p_xelement.getSingleTextNotNull("RecAreaCode");
        payOrgCode = p_xelement.getSingleTextNotNull("PayOrgCode");
        payAddr = p_xelement.getSingleTextNotNull("PayAddr");
        recAddr = p_xelement.getSingleTextNotNull("RecAddr");
        payOrgType = p_xelement.getSingleTextNotNull("PayOrgType");
        payCounyeryCode = p_xelement.getSingleTextNotNull("PayCountryCode");
        recCountryCode = p_xelement.getSingleTextNotNull("RecCountryCode");
        payCashAct = p_xelement.getSingleTextNotNull("PayCashAct");
        payCashAmount = p_xelement.getSingleTextNotNull("PayCashAmount");
        payPurchaseAct = p_xelement.getSingleTextNotNull("PayPurchaseAct");
        payPurchaseAmt = p_xelement.getSingleTextNotNull("PayPurchaseAmt");
        payOtherAct = p_xelement.getSingleTextNotNull("PayOtherAct");
        payOtherAmount = p_xelement.getSingleTextNotNull("PayOtherAmount");
        payCNAPSCode = p_xelement.getSingleTextNotNull("PayCNAPSCode");
        paySWIFTCODE = p_xelement.getSingleTextNotNull("PaySWIFTCODE");
        recType = p_xelement.getSingleTextNotNull("RecType");
        recCNAPSCode = p_xelement.getSingleTextNotNull("RecCNAPSCode");
        recCNAPSName = p_xelement.getSingleTextNotNull("RecCNAPSName");
        recSWIFTCODE = p_xelement.getSingleTextNotNull("RecSWIFTCODE");
        recAgentBnkName = p_xelement.getSingleTextNotNull("RecAgentBnkName");
        recAgentBnkSWIFT = p_xelement.getSingleTextNotNull("RecAgentBnkSWIFT");
        recAgentBnkAct = p_xelement.getSingleTextNotNull("RecAgentBnkAct");
        costMode = p_xelement.getSingleTextNotNull("CostMode");
        isBondedGood = p_xelement.getSingleTextNotNull("IsBondedGood");
        payProperty = p_xelement.getSingleTextNotNull("PayProperty");
        transCode1 = p_xelement.getSingleTextNotNull("TransCode1");
        currency1 = p_xelement.getSingleTextNotNull("Currency1");
        postScript1 = p_xelement.getSingleTextNotNull("PostScript1");
        amout1 = p_xelement.getSingleTextNotNull("Amout1");
        transCode2 = p_xelement.getSingleTextNotNull("TransCode2");
        currency2 = p_xelement.getSingleTextNotNull("Currency2");
        postScript2 = p_xelement.getSingleTextNotNull("PostScript2");
        amout2 = p_xelement.getSingleTextNotNull("Amout2");
        feeAct = p_xelement.getSingleTextNotNull("FeeAct");
        contractNo = p_xelement.getSingleTextNotNull("ContractNo");
        invoiceNo = p_xelement.getSingleTextNotNull("InvoiceNo");
        isDomestic = p_xelement.getSingleTextNotNull("IsDomestic");
        contactPerson = p_xelement.getSingleTextNotNull("ContactPerson");
        contactNum = p_xelement.getSingleTextNotNull("ContactNum");
        businessNum = p_xelement.getSingleTextNotNull("BusinessNum");
        ispaymentforimportitem = p_xelement.getSingleTextNotNull("Ispaymentforimportitem");
        payMethod = p_xelement.getSingleTextNotNull("PayMethod");
        declareFlag = p_xelement.getSingleTextNotNull("DeclareFlag");
        recCheque = p_xelement.getSingleTextNotNull("recCheque");
        chequeAddr = p_xelement.getSingleTextNotNull("ChequeAddr");
        payCtryCode = p_xelement.getSingleTextNotNull("PayCtryCode");
        recCtryCode = p_xelement.getSingleTextNotNull("RecCtryCode");
        recBnkAddr = p_xelement.getSingleTextNotNull("RecBnkAddr");
        recBnkName = p_xelement.getSingleTextNotNull("RecBnkName");
        recAgentBnkAddr = p_xelement.getSingleTextNotNull("RecAgentBnkAddr");
        recAgentBnkCtryCode = p_xelement.getSingleTextNotNull("RecAgentBnkCtryCode");
        exContract = p_xelement.getSingleTextNotNull("ExContract");
        recRTGSCode = p_xelement.getSingleTextNotNull("RecRTGSCode");
        recRTGSName = p_xelement.getSingleTextNotNull("RecRTGSName");
        chargeCur = p_xelement.getSingleTextNotNull("ChargeCur");
        payIBAN = p_xelement.getSingleTextNotNull("payIBAN");
        recIBAN = p_xelement.getSingleTextNotNull("recIBAN");
        payActCur= p_xelement.getSingleTextNotNull("PayActCur");
        fundsProp= p_xelement.getSingleTextNotNull("FundsProp");
    }
}
